From: Boris Ostrovsky Date: Thu, 26 Mar 2015 18:08:44 +0000 (-0400) Subject: libxc: Make conversion from page count to bytes 32-bit safe X-Git-Tag: archive/raspbian/4.8.0-1+rpi1~1^2~3514 X-Git-Url: https://dgit.raspbian.org/%22http:/www.example.com/cgi/%22https:/%22bookmarks://%22Dat/%22http:/www.example.com/cgi/%22https:/%22bookmarks:/%22Dat?a=commitdiff_plain;h=985c52cf0c0ee31091b29af012ba86a8d83db420;p=xen.git libxc: Make conversion from page count to bytes 32-bit safe Commit ba59e2ce935d ("libxc: allocate memory with vNUMA information for PV guest") creates default vNUMA layout with a single range containing all memory. The end of the range is calculated by shifting dom->total_pages by 12 to the left. On 32-bit dom0 this may result in losing upper bits since total_pages is a 32-bit type. Signed-off-by: Boris Ostrovsky Acked-by: Ian Campbell --- diff --git a/tools/libxc/xc_dom_x86.c b/tools/libxc/xc_dom_x86.c index 3301f53365..783f74994a 100644 --- a/tools/libxc/xc_dom_x86.c +++ b/tools/libxc/xc_dom_x86.c @@ -829,7 +829,7 @@ int arch_setup_meminit(struct xc_dom_image *dom) dom->nr_vmemranges = 1; dom->vmemranges = xc_dom_malloc(dom, sizeof(*dom->vmemranges)); dom->vmemranges[0].start = 0; - dom->vmemranges[0].end = dom->total_pages << PAGE_SHIFT; + dom->vmemranges[0].end = (uint64_t)dom->total_pages << PAGE_SHIFT; dom->vmemranges[0].flags = 0; dom->vmemranges[0].nid = 0;